#include<stdio.h>
#include<stdlib.h>
#include<string.h>

//CUDA相关的库是不需要的，运行时的函数不需要加载任何的库
// #include<cuda.h>

int main(){
    //查看CUDA的相关信息，可以查看很多信息，可以在文档中查看cudaDeviceProp这个结构体

    //首先查看有多少个设备试试水
    int device_count;

    //CUDA_SAFE_CALL可以自动捕获程序的运行错误，并且打印出来，但是实际上这个不是官方的函数
    cudaGetDeviceCount(&device_count);

    //打印运算设备的个数
    printf("设备的个数%d\n", device_count);

    //迭代使用的变量
    int i;

    //存储设备的信息
    cudaDeviceProp prop;

    //查看每个设备的信息
    for(i = 0; i < device_count; i++){
        printf("当前的设备：%d\n", i);

        cudaGetDeviceProperties (&prop, i);

        //查看版本号
        // if(prop.major == 9999 && prop.minor == 9999){
            
        // }

        printf("当前计算力%d.%d\n", prop.major, prop.minor);

        //查看SM的数量
        printf("核心数量%d\n", prop.multiProcessorCount);

        //查看wrap的数量
        printf("线程束的数量%d\n", prop.warpSize);

        printf("\n");
    }

    return 0;
}